<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  <link rel="stylesheet" href="css/reset.css" />
  <link rel="stylesheet" href="css/main.css" />
  <title>聊天机器人</title>
</head>

<body>
  <div class="wrap">
    <!-- 头部 Header 区域 -->
    <div class="header">
      <h3>小思同学</h3>
      <img src="img/person01.png" alt="icon" />
    </div>
    <!-- 中间 聊天内容区域 -->
    <div class="main">
      <ul class="talk_list" style="top: 0px;" id="talk_list">
        <!-- 机器人 -->
        <li class="left_word">
          <img src="img/person01.png" /> <span>嗨，最近想我没有？</span>
        </li>
        <!-- 我 -->
        <!-- <li class="right_word">
          <img src="img/person02.png" /> <span>嗨，最近想我没有？</span>
        </li> -->
      </ul>
    </div>
    <!-- 底部 消息编辑区域 -->
    <div class="footer">
      <img src="img/person02.png" alt="icon" />
      <input type="text" placeholder="说的什么吧..." class="input_txt" id="ipt" />
      <input type="button" value="发 送" class="input_sub" id="btnSend" />
    </div>
  </div>
  <script type="text/javascript" src="./js/axios.js"></script>
  <audio src="" id="voice" autoplay style="display: none;"></audio>
  <script>
    let ipt = document.querySelector('#ipt')
    let btnSend = document.querySelector('#btnSend')
    let ul = document.querySelector('#talk_list')
    let voice = document.querySelector('#voice')

    // 发布功能
    btnSend.addEventListener('click', async function () {
      // 1. 
      let content = ipt.value.trim()

      // 细节
      // 清空效果
      ipt.value = ''

      // 没有内容不让发送
      // 字符串.trim() 可以去除首尾空格
      if (content === '') {
        return alert('请输入内容')
      }

      // 2.
      let newLi = document.createElement('li')

      // 3.
      newLi.className = 'right_word'
      newLi.innerHTML = `
        <img src="img/person02.png" /> <span>${content}</span>
      `
      // 4.
      ul.appendChild(newLi)

      // ul滚动距离为ul的内容高度 ==> 可以实现滚动到底部去
      ul.scrollTop = ul.scrollHeight

      // 发送ajax请求来获取机器人说的话
      const { data: res } = await axios({
        // method: 'get',
        url: 'http://ajax-api.itheima.net/api/robot',
        params: {
          spoken: content
        }
      })
      console.log(res) // 服务器响应回来的数据

      // 存机器人说的话
      let text = res.data.info.text
      console.log(text)

      // 机器人说的话放到ul中展示
      let leftLi = document.createElement('li')
      leftLi.className = 'left_word'
      leftLi.innerHTML = `
           <img src="img/person01.png" /> <span>${text}</span>
        `
      ul.appendChild(leftLi)
      // ul滚动到底部
      ul.scrollTop = ul.scrollHeight

      // 代码位置一定要注意 （参数text记得要传递）
      // 文字转语音的代码，需要在then里面，才能获取到机器人说的话（text变量）
      // 功能：发送ajax请求
      const { data: res2 } = await axios({
        url: 'http://ajax-base-api-t.itheima.net/api/synthesize',
        method: 'GET',
        params: {
          text
        }
      })

      // 将机器人的文字转语音的结果（voiceUrl）赋值给audio的src属性
      voice.src = res2.voiceUrl
    })

    // 回车发布 ==> 模拟点击了发送按钮
    ipt.addEventListener('keyup', function (e) {
      if (e.key === 'Enter') {
        btnSend.click()
      }
    })
  </script>
</body>

</html>